package com.agritech.chain;

/**
 * 异常处理器抽象类
 * 责任链模式：使多个对象都有机会处理请求，从而避免请求的发送者和接收者之间的耦合关系。
 * 将这些对象连成一条链，并沿着这条链传递该请求，直到有一个对象处理它为止。
 */
public abstract class ExceptionHandler {
    protected ExceptionHandler nextHandler; // 下一个处理器
    protected String handlerName; // 处理器名称

    public ExceptionHandler(String handlerName) {
        this.handlerName = handlerName;
    }

    /**
     * 设置下一个处理器
     * @param nextHandler 下一个处理器
     */
    public void setNextHandler(ExceptionHandler nextHandler) {
        this.nextHandler = nextHandler;
    }

    /**
     * 处理异常请求
     * @param request 异常请求
     * @return 是否已处理
     */
    public abstract boolean handleRequest(String request);

    /**
     * 获取处理器名称
     * @return 处理器名称
     */
    public String getHandlerName() {
        return handlerName;
    }
}